package com.ledi.pay.pojo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import lombok.Data;

/**
 * 文件名称： com.ledi.pay.response.UserInfo.java<br/>
 * 初始作者： 钟小平<br/>
 * 创建日期： 2018年8月8日<br/>
 * 功能说明： 授权用户信息 <br/>
 * =================================================<br/>
 * 修改记录：<br/>
 * 修改作者 日期 修改内容<br/>
 * ================================================<br/>
 * Copyright (乐迪教育科技有限公司-幼儿事业部) 2017-2018.All rights reserved.<br/>
 */
@Data
@Entity
@Table(name = "t_ali_user")
public class UserInfo implements Serializable {

	/**
	 * 字段描述: [字段功能描述]
	 */
	private static final long serialVersionUID = 1870719043988117191L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;
	/**
	 * 详细地址。
	 */
	@Column(name = "address")
	private String address;

	/**
	 * 区县名称。
	 */
	@Column(name = "area")
	private String area;

	/**
	 * 用户头像地址
	 */
	@Column(name = "avatar")
	private String avatar;

	/**
	 * 经营/业务范围（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "business_scope")
	private String businessScope;

	/**
	 * 【注意】只有is_certified为T的时候才有意义，否则不保证准确性.
	 * 证件号码，结合证件类型使用.
	 */
	@Column(name = "cert_no")
	private String certNo;

	/**
	 * 【注意】只有is_certified为T的时候才有意义，否则不保证准确性.
	 * 0:身份证
	 * 1:护照
	 * 2:军官证
	 * 3:士兵证
	 * 4:回乡证
	 * 5:临时身份证
	 * 6:户口簿
	 * 7:警官证
	 * 8:台胞证
	 * 9:营业执照
	 * 10:其它证件
	 * 11:港澳居民来往内地通行证
	 * 12:台湾居民来往大陆通行证
	 */
	@Column(name = "cert_type")
	private String certType;

	/**
	 * 市名称。
	 */
	@Column(name = "city")
	private String city;

	/**
	 * 学信网返回的学校名称，有可能为空。
	 */
	@Column(name = "college_name")
	private String collegeName;

	/**
	 * 国家码
	 */
	@Column(name = "country_code")
	private String countryCode;

	/**
	 * 学信网返回的学历/学位信息，数据质量一般，请谨慎使用，取值包括：博士研究生、硕士研究生、高升本、专科、博士、硕士、本科、夜大电大函大普通班、专科(高职)、第二学士学位。
	 */
	@Column(name = "degree")
	private String degree;

	/**
	 * 用户支付宝邮箱登录名
	 */
	@Column(name = "email")
	private String email;

	/**
	 * 入学时间，yyyy-mm-dd格式
	 */
	@Column(name = "enrollment_time")
	private String enrollmentTime;

	/**
	 * 企业代理人证件有效期（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "firm_agent_person_cert_expiry_date")
	private String firmAgentPersonCertExpiryDate;

	/**
	 * 企业代理人证件号码（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "firm_agent_person_cert_no")
	private String firmAgentPersonCertNo;

	/**
	 * 企业代理人证件类型, 返回值参考cert_type字段（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "firm_agent_person_cert_type")
	private String firmAgentPersonCertType;

	/**
	 * 企业代理人姓名（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "firm_agent_person_name")
	private String firmAgentPersonName;

	/**
	 * 企业法人证件有效期（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "firm_legal_person_cert_expiry_date")
	private String firmLegalPersonCertExpiryDate;

	/**
	 * 法人证件号码（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "firm_legal_person_cert_no")
	private String firmLegalPersonCertNo;

	/**
	 * 企业法人证件类型, 返回值参考cert_type字段（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "firm_legal_person_cert_type")
	private String firmLegalPersonCertType;

	/**
	 * 企业法人名称（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "firm_legal_person_name")
	private String firmLegalPersonName;

	/**
	 * 公司类型，包括（用户类型是公司类型时才有此字段）：
	 * CO(公司)
	 * INST(事业单位),
	 * COMM(社会团体),
	 * NGO(民办非企业组织),
	 * STATEORGAN(党政国家机关)
	 */
	@Column(name = "firm_type")
	private String firmType;

	/**
	 * 【注意】只有is_certified为T的时候才有意义，否则不保证准确性.
	 * 性别（F：女性；M：男性）。
	 */
	@Column(name = "gender")
	private String gender;

	/**
	 * 预期毕业时间，不保证准确性，yyyy-mm-dd格式。
	 */
	@Column(name = "graduation_time")
	private String graduationTime;

	/**
	 * 余额账户是否被冻结。
	 * T--被冻结；F--未冻结
	 */
	@Column(name = "is_balance_frozen")
	private String isBalanceFrozen;

	/**
	 * 是否通过实名认证。T是通过 F是没有实名认证。
	 */
	@Column(name = "is_certified")
	private String isCertified;

	/**
	 * 是否是学生
	 */
	@Column(name = "is_student_certified")
	private String isStudentCertified;

	/**
	 * 营业执照有效期，yyyyMMdd或长期，（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "license_expiry_date")
	private String licenseExpiryDate;

	/**
	 * 企业执照号码（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "license_no")
	private String licenseNo;

	/**
	 * 支付宝会员等级
	 */
	@Column(name = "member_grade")
	private String memberGrade;

	/**
	 * 手机号码。
	 */
	@Column(name = "mobile")
	private String mobile;

	/**
	 * 用户昵称
	 */
	@Column(name = "nick_name")
	private String nickName;

	/**
	 * 组织机构代码（用户类型是公司类型时才有此字段）。
	 */
	@Column(name = "organization_code")
	private String organizationCode;

	/**
	 * 个人用户生日。
	 */
	@Column(name = "person_birthday")
	private String personBirthday;

	/**
	 * 证件有效期（用户类型是个人的时候才有此字段）。
	 */
	@Column(name = "person_cert_expiry_date")
	private String personCertExpiryDate;

	/**
	 * 电话号码。
	 */
	@Column(name = "phone")
	private String phone;

	/**
	 * 职业
	 */
	@Column(name = "profession")
	private String profession;

	/**
	 * 省份名称
	 */
	@Column(name = "province")
	private String province;

	/**
	 * 淘宝id
	 */
	@Column(name = "taobao_id")
	private String taobaoId;

	/**
	 * 支付宝用户的userId
	 */
	@Column(name = "user_id")
	private String userId;

	/**
	 * 【注意】只有is_certified为T的时候才有意义，否则不保证准确性.
	 * 若用户是个人用户，则是用户的真实姓名；若是企业用户，则是企业名称。
	 */
	@Column(name = "user_name")
	private String userName;

	/**
	 * 用户状态（Q/T/B/W）。
	 * Q代表快速注册用户
	 * T代表已认证用户
	 * B代表被冻结账户
	 * W代表已注册，未激活的账户
	 */
	@Column(name = "user_status")
	private String userStatus;

	/**
	 * 用户类型（1/2）
	 * 1代表公司账户2代表个人账户
	 */
	@Column(name = "user_type")
	private String userType;

	/**
	 * 邮政编码。
	 */
	@Column(name = "zip")
	private String zip;

	/**
	 * 使用状态
	 */
	@Column(name = "status")
	private String status;

}
